"""
MessageBox辅助模块 - 提供兼容不同版本的qfluentwidgets的MessageBox调用方式
"""

from PyQt5.QtWidgets import QMessageBox

def show_message_box(title, content, parent=None, yes_no=False):
    """
    显示一个消息框，兼容不同版本的qfluentwidgets
    
    参数:
        title: 标题
        content: 内容
        parent: 父窗口
        yes_no: 是否显示"是/否"按钮(如果为False，则只显示"确定"按钮)
        
    返回:
        使用标准QMessageBox时返回True表示点击了"是/确定"，False表示点击了"否/取消"
    """
    try:
        # 尝试导入MessageBox
        from qfluentwidgets import MessageBox
        
        # 尝试使用基本形式调用MessageBox
        try:
            if yes_no:
                # 使用QMessageBox替代，避免参数问题
                msgbox = QMessageBox(parent)
                msgbox.setWindowTitle(title)
                msgbox.setText(content)
                msgbox.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
                msgbox.setDefaultButton(QMessageBox.No)
                return msgbox.exec_() == QMessageBox.Yes
            else:
                # 基本信息对话框
                MessageBox(title, content, parent)
                return True
        except TypeError:
            # 如果基本调用失败，使用QMessageBox
            print("MessageBox调用失败，使用QMessageBox替代")
            if yes_no:
                return QMessageBox.question(
                    parent, title, content, 
                    QMessageBox.Yes | QMessageBox.No, 
                    QMessageBox.No
                ) == QMessageBox.Yes
            else:
                QMessageBox.information(parent, title, content)
                return True
    except ImportError:
        # 如果导入失败，使用QMessageBox
        if yes_no:
            return QMessageBox.question(
                parent, title, content, 
                QMessageBox.Yes | QMessageBox.No, 
                QMessageBox.No
            ) == QMessageBox.Yes
        else:
            QMessageBox.information(parent, title, content)
            return True
